package com.example.multilpeDataSource.config;

/**
 * @author wangzhendong
 * @data 2020-02-08 12:45
 * 拿ThreadLocal存储数据源
 */
public class DataSourceContextHolder {
    /**
     * 默认数据源
     */
    public static final String DEFAULT_DATASOURCE = DataSources.MASTER_DB;

    /**
     * 采用ThreadLocal来存储我们准备的数据源
     */
    private static final ThreadLocal<String> contextHolder = new ThreadLocal<>();

    /**
     * 设置数据源
     * @param dbType
     */
    public static void setDB(String dbType){
        System.out.println("切换到{}数据源"+dbType);
        contextHolder.set(dbType);
    }

    /**
     * 获取数据源
     * @return
     */
    public static String getDB(){
        System.out.println("获取到{}数据源"+contextHolder.get());
        return contextHolder.get();
    }

    /**
     * 清除数据源
     */
    public static void clearDB(){
        contextHolder.remove();
    }

}
